Mybatis与Mybatis Plus

Mybatis

1、手写SQL语句

2、手动解析实体关系映射,转为MyBatis内部对象

3、不支持Lambda形式调用

MyBatis Plus

1、强大的条件构造器,满足各类使用需求

2、简化了配置,内置通用Mapper、Service,少量配置即可实现数据表大部分CRUD操作

3、支持Lambda形式调用

4、提供基本的CRUD功能,不需要配置SQL语句

5、自动解析实体关系映射,转为MyBatis内部对象

MyBatis优点

1、封装JDBC访问数据库细节

2、手写SQL,可以优化SQL性能

3、SQL与代码分离,统一管理维护

4、支持动态SQL,if表达式等

5、支持对象与数据表关系映射

MyBatis缺点

1、移植性差,更换数据库SQL改动量大

2、Mapper文件配置的DAO ID唯一,不支持重载

MyBatis Plus优点

1、依赖少,依赖MyBatis、Mybatis-Spring

2、损耗小,启动时自动注入基本CRUD,面向对象操作

3、预防SQL注入,内置SQL注入剥离器

4、少量配置即可实现数据表大部分CRUD操作

5、强大的条件构造器

6、多种主键策略

7、支持热加载,如修改Mapper文件

8、支持ActiveRecord,实体类继承Model类就可实现基本CRUD操作

9、支持代码生成,借助Maven插件快速生成Mapper、Model、Service、Controller

10、支持自定义全局通用操作

11、支持关键字自动转义,如order

12、内置分页插件

13、内置性能分析插件,可输出SQL语句以及执行时间

14、内置全局拦截插件,提供全表delete、update操作智能分析阻断,预防误操作

15、默认用实体类名查找数据表,使用@TableName(value="table1")注解

浙ICP备11005866号-12